home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
cstdio.arc
/
SRC.ARC
/
FNSINTR.A
< prev
next >
Wrap
Text File
|
1985-01-10
|
1KB
|
72 lines
; fnsintr.a - intrinsic functions.
; (C) Copyright 1984 Gregory R. Mansfield - All Rights Reserved.
; G. R. Mansfield. 84/06/13.
; Ver 1.1-5110.
cseg
public _cmp4
public _shl4
public _shr4
public _switch
; cmp4 - compare long.
_cmp4: cmp dx,bx
jnz cmp4
jns cmp2
cmp ax,cx
jz cmp4
mov al,1
jb cmp3
cmp1: cmp al,2
ret
cmp2: cmp ax,cx
jz cmp4
mov al,1
jb cmp1
cmp3: cmp al,0
cmp4: ret
; shl4 - shift left long.
_shl4: mov ch,0
jcxz shl2
shl1: shl ax,1
rcl dx,1
loop shl1
shl2: ret
; shr4 - shift right long.
_shr4: mov ch,0
jcxz shr2
shr1: shr dx,1
rcr ax,1
loop shr1
shr2: ret
; switch - integer switch list.
_switch:
pop si ; list address
mov cx,cs:[si] ; length
add si,2
swt1: mov ax,cs:[si] ; list entry
cmp ax,8000H
jz swt2
cmp bx,ax
jz swt3 ; if match
add si,4
loop swt1
jmp dx ; default
swt2: mov dx,cs:[si+2] ; default address
add si,4
jmp swt1
swt3: jmp word cs:[si+2] ; case